<?php

class AdmListar extends TPage {

  public function onLoad($param) {
    parent::onLoad($param);
    if (!$this->IsPostBack) {
      $this->actualizarIntefaz();
    }
  }

  private function actualizarIntefaz() {
    $arg = $this->Request["a"];
    if (!Util::isNullOrEmpty($arg)) {
      $intIdTipoUsuario = Util::desencriptarUrl($arg, "tipoUsuario");
    } else {
      $intIdTipoUsuario = "-1";
    }
    $this->setViewState("tipoUsuario", $intIdTipoUsuario);

    $arr = $this->obtenerDatos();
    $this->iniciarControles($arr);
    $this->mostrarMensaje();

    switch ($intIdTipoUsuario) {
      case Tipo_usuario::ADMINISTRADOR;
        $tipoUsuario = "ADMINISTRADOR";
        break;
      case Tipo_usuario::MODERADOR;
        $tipoUsuario = "MODERADOR";
        break;
      case Tipo_usuario::USUARIO;
        $tipoUsuario = "USUARIO";
        break;
      case Tipo_usuario::ESCORT;
        $tipoUsuario = "ESCORT";
        break;
      default:
        $tipoUsuario = "USUARIO";
        break;
    }
    $this->ltTitulo->Text = $tipoUsuario;
  }

  private function obtenerDatos() {
    $tipoUsuario = $this->getViewState("tipoUsuario");

    $oUsuario = new Usuario();
    $oUsuario->setIdTipoUsuario($tipoUsuario);
    $oUsuarioBLL = new UsuarioBLL();
    $arr = $oUsuarioBLL->listar($oUsuario);
    return $arr;
  }

  private function iniciarControles($arr) {
    $tipoUsuario = $this->getViewState("tipoUsuario");
    $btnNuevo = "<a href=\"?page=Usuario.AdmRegistro&a={#QUERYSTRING}\" class=\"btn btn-primary pull-right\"><i class=\"icon-user-add\"></i> {#TEXTO}</a>";

    if (count($arr) > 0) {
      $this->pnlGrilla->Visible = true;
      $this->pnlSinRegistros->Visible = false;
      $this->dgPrincipal->DataSource = $arr;
      $this->dgPrincipal->dataBind();
    } else {
      $this->pnlGrilla->Visible = false;
      $this->pnlSinRegistros->Visible = true;
    }

    if(($tipoUsuario == Tipo_usuario::ESCORT)){
      $queryString = Util::encriptarUrl(array(
                                          "id" => "-1",
                                          "tipoUsuario" => $tipoUsuario
                                       ));
      $texto = "Nueva escort";
    } else {
      $queryString = "";
      $texto = "Nuevo usuario";
    }

    $btnNuevo = str_replace("{#QUERYSTRING}", $queryString, $btnNuevo);
    $btnNuevo = str_replace("{#TEXTO}", $texto, $btnNuevo);
    $this->btnNuevoUsuario->Text = $btnNuevo;
  }

  private function mostrarMensaje(){
    $arg = $this->Request["a"];
    if (!Util::isNullOrEmpty($arg)) {
      $tipoMensaje = Util::desencriptarUrl($arg, "tipoMensaje");
      $mensaje = Util::desencriptarUrl($arg, "mensaje");

      if(!Util::isNullOrEmpty($mensaje)){
        Util::mostrarMsj($this->Page, "da-ex-val-error", $mensaje, $tipoMensaje);
      }
    }

  }

  public function onDataBoundDataGrid($sender, $param) {
    $tipoUsuario = $this->getViewState("tipoUsuario");
    $item = $param->Item;
    $clasificacion = "";

    if ($item->ItemType === 'Item' || $item->ItemType === 'AlternatingItem') {
      $txtId = $item->findControl("txtId");
      $txtRanking = $item->findControl("txtRanking");
      $txtDestacada = $item->findControl("txtDestacada");
      $txtCertificada = $item->findControl("txtCertificada");
      $lblOpcion = $item->findControl("lblOpcion");
      $lblClasificacion = $item->findControl("lblClasificacion");
      $ranking = $txtRanking->Value;

      $clasificacion .= ($ranking > "0" && $ranking <= "5") ? "TOP-".$ranking."<br />" : "";
      $clasificacion .= ($txtDestacada->Value == "1") ? "Destacada<br />" : "";
      $clasificacion .= ($txtCertificada->Value == "1") ? "Certificada<br />" : "";
      $lblClasificacion->Text = $clasificacion;

      $id = $txtId->Value;
      $arg = Util::encriptarUrl(array("id" => $id));
      $lblOpcion->Text = "<a href=\"index.php?page=Usuario.AdmRegistro&a=".$arg."\" title=\"Editar\"><i class=\"icol-pencil\"></i></a>&nbsp;&nbsp;";

      $arrEliminar = array(
        "idRegistro" => $id,
        "urlAjax" => "Usuario.Ajax",
        "opcionAjax" =>"Eliminar",
        "urlRespuesta" => "Usuario.AdmListar",
        "parametrosUrlRespuesta" => array(
                                     "tipoUsuario" => $tipoUsuario
                                    )

      );
      $opcionesEliminar = Util::jsonOpcionesEliminar($arrEliminar);
      $lblOpcion->Text .= "<a href=\"#\" onclick=\"eliminarRegistro(".$opcionesEliminar.")\"><i class=\"icol-cross\"></i></a>";

      //limpia controles
      $txtId->Value = "";
      $txtRanking->Value = "";
      $txtDestacada->Value = "";
      $txtCertificada->Value = "";

    }
  }

}
?>
